package commonclass.stringclass;




import org.junit.jupiter.api.Test;

import javax.sound.midi.Soundbank;

/**
 * @author Lenl
 * @version v1.0
 * @create 2021-06-03 11:42
 * @description String常用方法
 *
 *
 *
 */
public class CommonMethods {

    /**
     * 1. int Length()字符串长度
     * 2. char cHarAt(int index) 某索引处字符
     * 3. boolean isEmpty() 判断是否空字符串
     * 4. String toLowerCase()/toUpperCase()大小写
     * 5. String trim()
     * 6. boolean equals(Object o)比较字符串内容是否相等
     * 7. boolean equalsIgnoreCase(String s)比较，不区分大小写
     * 8. String contact(String str)将指定字符串连接到此字符串的结尾，等价于“+”
     * 9. int CompareTo(String str) 比较两个字符串大小
     * 10. String substring(int beginIndex)截取字符串
     * 11. String substring(int bIndex,int eIndex)截取字符串
     *
     */

    @Test
    public  void test1(){
        String s1 ="helloworld";
        System.out.println(s1.length());
        System.out.println(s1.charAt(0));
        System.out.println(s1.isEmpty());
        System.out.println(s1.toUpperCase());
        System.out.println(s1);
        String s2="";
        String s3="     123     ";
        System.out.println(s2.isEmpty());
        System.out.println(s2.isBlank());
        System.out.println(s3.trim());
        System.out.println(s1.equalsIgnoreCase(s1.toUpperCase()));

        System.out.println(s1.concat(s3));
        System.out.println(s1.compareTo("hellp"));//涉及到字符串排序
        System.out.println(s1.substring(5));
        System.out.println(s1.substring(0,5));//[bIndex,eIndex)左闭右开
    }

    /**
     * boolean endWith(string suffix):测试字符串是否以指定后缀结束
     * boolean startWith(string prefix):测试字符串是否以指定前缀开始
     * boolean startWith(string prefix,int toffset):测试字符串从指定位置起是否以指定前缀开始
     * boolean contains(string str):测试字符串是否包含指定字符串
     * int indexOf(string str) :返回指定字符串首次出现的索引
     * int indexOf(string str,int fromIndex)返回指定字符串首次出现的索引,指定从哪开始找
     * int lastIndexOf(string str):最后出现的索引
     * int lastIndexOf(String str,int fromIndex):最后出现的索引，并指定从那个索引开始反向搜索！
     *
     */

    @Test
    public void test2(){
        String str1="helloworld";
        System.out.println(str1.startsWith("he"));
        System.out.println(str1.startsWith("h2"));
        System.out.println(str1.endsWith("rld"));
        System.out.println(str1.endsWith("lds"));
        System.out.println(str1.startsWith("owo",4));
        System.out.println(str1.contains("llp"));
        System.out.println(str1.indexOf("l"));
        System.out.println(str1.indexOf("l",3));
        System.out.println(str1.lastIndexOf("lp"));//找不到会返回-1
        System.out.println(str1.lastIndexOf("l",1));
    }

    /**
     * string replace(char oldChar,char new Char):替换字符串中的字符
     * string replace(CharSequence target,CharSequence replacement):使用字面值替换序列替换字符串所有匹配该序列的子字符串
     * string replaceAll(string regex,string replacement):使用指定的replacement替换所有正则匹配的子字符串
     * string replaceFirst(string regex,string replacement)同上，但是只匹配第一个
     *
     * boolean matches(string regex):字符串是否匹配正则
     *
     * string[] split(string regex):给定正则规则拆分字符串
     * string[] split(string regex,int limit):拆分最多不超过limit个，超过了则全部放在最后一个元素中
     *
     */

    @Test
    public void test3(){
        String str1="吃葡萄不吐葡萄皮，不吃葡萄倒吐葡萄皮";
        System.out.println(str1.replace('皮','籽'));
        System.out.println(str1);
        System.out.println(str1.replace("葡萄","香蕉"));

        String str2="1只蛤蟆1张嘴，2只眼睛4条腿";
        System.out.println(str2.replaceAll("\\d+","有"));
        System.out.println(str2.replaceAll("^\\d|\\d$",""));

        String str3="123321";
        String tel="0571-1232131";
        System.out.println(str3.matches("\\d+"));
        System.out.println(tel.matches("0571-\\d{7,8}"));

        String str4="i|am|lel|the|hardworking|man";
        String[] strs=str4.split("\\|");
        for(int i=0;i<strs.length;i++){
            System.out.println(strs[i]);
        }

    }
}
